<template>

	<view class="coupon-list">
		<view v-for="(item, index) in list" :key="index" class="mb20">
			<view :class="'coupon-item row ' + (btnType == 1 || btnType == 2 ? 'gray': '')">
				<view class="price white column-center">
					<view v-if="item.type == 1" class="xl bold">
						团购卷
					</view>
					<view class="xl">
						<price-format :first-size="60" :second-size="50" :subscript-size="34" :price="item.money"
							:weight="500" v-if="item.type == 0" />
					</view>
					<view class="sm" style="text-align: center" v-if="item.type == 0">{{item.use_condition}}</view>
				</view>
				<view class="info" style="margin-left: 40rpx;">
					<view class="bold lg mb10">{{item.name}}</view>
					<view class="xs lighter mb20">{{item.use_time_tips}}</view>
					<view class="xs lighter " v-if="item.type == 0">{{item.coupon_type}}</view>
				</view>
				<button type="primary" :class="'btn br60 white xs ' + (btnType != 3 ? 'plain': '')"
					@tap="onHandle(item.id,item.type,item.coupon_code,item.explain)">
					{{getBtn}}
				</button>
				<image v-if="item.is_get" class="receive" src="/static/images/coupon_receive.png"></image>
			</view>
			<view style="padding: 14rpx 20rpx" class="bg-white" v-if="item.tips" @tap="onShowTips(index)">
				<view class="row-between">
					<view class="xs">使用说明</view>
					<u-icon :class="showTips[index] ? 'rotate' : ''" name="arrow-down" />
				</view>
				<view v-show="showTips[index]" class="mt10 xs">{{item.tips}}</view>
			</view>
		</view>
		<u-popup v-model="InfoDisplayStatus" mode="center"  border-radius="14" :safe-area-inset-bottom="true" :closeable="true"  width="250px" >
			<view class="bg-white" style="width: 250px;">
				<view class="title xl bold" style="height: 40px;padding-left: 10px;"></view>
				<view class="xl bold" style="text-align: center;">
					核销二维码
				</view>
				<view class="qrimg" style="width: 120px;margin: 10px 75px;height: 120px;">
				    <tki-qrcode ref="qrcode" :val="coupon_code" :size="100" :unit="'px'" :loadMake="true"/>
				</view>
				<view class="xl bold" style="text-align: center;padding-bottom: 20px;">
					核销码：{{coupon_code}}
				</view>
				<view class="xs" style="padding: 10px;font-weight: bold;">
					{{explain}}
				</view>
			</view>
		</u-popup>
	</view>
</template>


<script>
	// +----------------------------------------------------------------------
	// | LikeShop100%开源免费商用电商系统
	// +----------------------------------------------------------------------
	// | 欢迎阅读学习系统程序代码，建议反馈是我们前进的动力
	// | 开源版本可自由商用，可去除界面版权logo
	// | 商业版本务必购买商业授权，以免引起法律纠纷
	// | 禁止对系统程序代码以任何目的，任何形式的再发布
	// | Gitee下载：https://gitee.com/likeshop_gitee/likeshop
	// | 访问官网：https://www.likemarket.net
	// | 访问社区：https://home.likemarket.net
	// | 访问手册：http://doc.likemarket.net
	// | 微信公众号：好象科技
	// | 好象科技开发团队 版权所有 拥有最终解释权
	// +----------------------------------------------------------------------
	// | Author: LikeShopTeam
	// +----------------------------------------------------------------------
	import {
		getCoupon
	} from '../../api/user';
	import tkiQrcode from "@/components/tki-qrcode/tki-qrcode.vue"
	export default {
		data() {
			return {
				InfoDisplayStatus: false,
				coupon_code:'',
				explain:'1232131',
				showTips: []
			};
		},
		components: {tkiQrcode},
		props: {
			list: {
				type: Array,
				default: () => []
			},
			btnType: {
				// 0 去使用  1已使用 2已过期 3领取
				type: Number
			}
		},
		watch: {
			list: {
				handler: function(val) {
					let arr = val.map(item => {
						return 0;
					});
					this.showTips = arr
				},
				immediate: true,
				deep: true
			}
		},
		computed: {},
		computed: {
			getBtn() {
				var text = ''
				switch (this.btnType) {

					case 0:
						text = '去使用';
						break;
					case 1:
						text = '已使用';
						break;
					case 2:
						text = '已过期';
						break;
					case 3:
						text = '领取';
						break;
				}
				return text
			}
		},
		methods: {
			onHandle(id,type,coupon_code,explain) {
				this.id = id;
				if(type == 1){
					this.InfoDisplayStatus = true;
					this.coupon_code = coupon_code
					this.explain = explain
					return false;
				}
				const {
					btnType
				} = this;
				this.getCouponFun()
				return false;
				switch (btnType) {
					case 0:
						uni.switchTab({
							url: '/pages/index/index'
						});
						break;

					case 1:
						// text = '去使用';
						break;

					case 2:
						// text = '已使用';
						break;

					case 3:
						this.getCouponFun();
						break;
				}
			},

			onShowTips(index) {
				const {
					showTips
				} = this;

				this.showTips[index] = showTips[index] ? 0 : 1
				// 拷贝数组
				this.showTips = Object.assign([], this.showTips);
			},

			getCouponFun() {
				getCoupon(this.id).then(res => {
					if (res.code == 1) {
						this.$toast({
							title: res.msg
						})
						this.$emit('reflash');
					}
				});
			}

		}
	};
</script>
<style lang="scss">
	/* components/coupon-list/coupon-list.wxss */
	.coupon-list {
		padding: 20rpx 24rpx;

		.coupon-item {
			position: relative;
			height: 200rpx;
			background: url() no-repeat;
			// background-image: url(../../static/images/coupon_bg.png);
			background-size: 100% 100%;

			&.gray {
				background-image: url(../../static/images/coupon_bg_grey.png);

				.btn {
					&.plain {
						color: #CCCCCC;
					}
				}
			}

			.price {
				width: 200rpx;
			}

			.btn {
				line-height: 52rpx;
				height: 52rpx;
				position: absolute;
				right: 20rpx;
				bottom: 20rpx;
				width: 120rpx;
				text-align: center;
				padding: 0;
				text-align: center;
				box-sizing: border-box;

				&.plain {
					background-color: #fff;
					color: var(--primary-color);
					border: 1px solid currentColor;
				}
			}

			.receive {
				position: absolute;
				right: 30rpx;
				top: 0rpx;
				width: 99rpx;
				height: 77rpx;
			}
		}

		.icon {
			transition: all 0.4s;
		}

		.rotate {
			transform: rotateZ(-180deg);
		}
	}
</style>
